package com.zy.crm.workbench.service.impl;

import com.github.pagehelper.PageHelper;
import com.zy.crm.exception.SaveUserException;
import com.zy.crm.utils.UUDIUtil;
import com.zy.crm.vo.Message;
import com.zy.crm.vo.PaginationVo;
import com.zy.crm.workbench.dao.OwnerDao;
import com.zy.crm.workbench.domain.Owner;
import com.zy.crm.workbench.domain.ship_zl;
import com.zy.crm.workbench.service.OwnerService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author CYH

 */
@Service
public class OwnerServiceImpl implements OwnerService {



    // 市场活动备注dao
    @Resource
    private OwnerDao ownerDao;

    // 添加使用者信息
    @Override
    public Message saveOwner(Owner user) throws SaveUserException {
        Message msg = new Message();

        // 创建UUID
        String uuid = UUDIUtil.getUUID();
        user.setId(uuid);

        //System.out.println(user);//有数据，前后端数据传输无误
        //System.out.println("继续排查是否是service有问题");
        //此时的user除了id不一样其它都是controller得到的
        // 得到保存信息成功条数,排查得知是这里出问题了，没有返回出来了
        int result =0;
        result=ownerDao.insert_Owner(user);
       // System.out.println("userservice层的result="+result);
        // 添加成功
        if(result > 0){
            System.out.println("添加成功");
            msg.setSuccess(true);
        //  添加失败
        }else {
            System.out.println("添加失败");
            msg.setSuccess(false);
        }

        return msg;
    }

    // 分页查询信息
    @Override
    public PaginationVo<Owner> getPageList(String pageNo, String pageSize, Owner user) {
        PaginationVo<Owner> paginationVo = new PaginationVo<>();
        // 根据页码查询 利用pageHelper进行分页查询
        // 第一个参数是页号 第二个参数是每页的记录条数
        int pageNum = Integer.parseInt(pageNo);
        int pageSizes = Integer.parseInt(pageSize);
        PageHelper.startPage(pageNum,pageSizes);
        List<Owner> users = ownerDao.selectPageList(user);

        // 查询市场活动总条数
        int totalSize = ownerDao.selectTotalSize(user);

        // 利用vo封装总的记录条数和查询结果集
        paginationVo.setDataList(users);//对应的是activity
        paginationVo.setTotalSize(totalSize);
        return paginationVo;
    }


    // 删除用户，因为有可能有多个用户要删除，所以传入数组
    @Override
    @Transactional
    public Message deleteOwner(String[] UserIds) {

        Message msg = new Message();

        int userResult = ownerDao.deleteOwner(UserIds);

        String result = "成功删除使用者" + userResult + "条";
        msg.setSuccess(true);
        msg.setMsg(result);
        return msg;

    }



//修改用户信息
    @Override
    public Message updateOwnerById(Owner user) {

        Message msg = new Message();
        System.out.println("成功进入了业务层"+user);
        int result =  ownerDao.updateOwnerById(user);
        //System.out.println("测试是否出了持久层");
        // 成功修改一条记录表示修改成功
        if(result == 1){
            msg.setSuccess(true);
        }

        return msg;
    }

//根据id查一条用户信息
@Override
public Owner  getOwnerById(String id) {
    //System.out.println("测试是否进入了业务层，测试id是否存入"+id);
    // 拿到活动信息,id传输无误，查看sql语句
    Owner user = ownerDao.selectOwnerById(id);
    System.out.println("测试是否能出持久层"+user);
    return user;
    }


    //打印
    @Override
    public List<Owner>  getPrint(Owner water) {

        List<Owner> hd = ownerDao.print(water);
        //System.out.println("测试是否能出持久层");

        return hd;
    }
}












